package com.atguigu.structures.tree.bst;

import com.atguigu.structures.tree.node.BSTNode;

/**
 * 二叉排序树测试类
 *
 * @author xr-8
 * @date 2022-12-16
 * @time 0:20
 */
public class BinarySortTreeTest {

    public static void main(String[] args) {
        int[] arr = {7, 3, 10, 12, 5, 1, 9, 2};
        BinarySortTree binarySortTree = new BinarySortTree();
        //循环的添加结点到二叉排序树
        for(int i = 0; i< arr.length; i++) {
            binarySortTree.add(new BSTNode(arr[i]));
        }
        //中序遍历二叉排序树
        System.out.println("中序遍历二叉排序树~");
        binarySortTree.infixOrder(); // 1, 3, 5, 7, 9, 10, 12

        //测试删除子节点
//        delNodeTest(binarySortTree);
    }

    /**
     * 测试删除子节点
     * @param binarySortTree
     */
    public static void delNodeTest(BinarySortTree binarySortTree) {
        binarySortTree.delNode(12);
        binarySortTree.delNode(5);
        binarySortTree.delNode(10);
        binarySortTree.delNode(2);
        binarySortTree.delNode(3);
        binarySortTree.delNode(9);
        binarySortTree.delNode(1);
        binarySortTree.delNode(7);

        System.out.println("root=" + binarySortTree.getRoot());
        System.out.println("删除结点后");
        binarySortTree.infixOrder();
    }

}